#include <iostream>
#include <stack>  //stack的头文件
using namespace std;
/*
	栈实现求各种进程
*/

int main()
{
	int i;
	int num;
	//定义stack对象
	stack<int> stack1;

	cout<<"请任意输入一个整数"<<endl;
	cin>>num;
	if(num>=0)
	{
		while(num>=16)
		{
			//把余数入栈
			stack1.push(num%16);
			//更新num
			num/=16;
		}
		stack1.push(num);
		
		//验证结果
		int len=stack1.size();
		cout<<"二进制是: ";
		for(i=0; i<len; i++)
		{
			//如果16进制，存在字面需要转换
			int ret=stack1.top();
			if(ret>=10)  //10-A(ASCII65)  11-B(ASCII66)
			{
				//需要转成ABCDEF打印
				cout<<char(ret+55);
			}
			else
			{
				cout<<ret;
			}		
			stack1.pop();
		}
		cout<<endl;
	}
	return 0;
}